#include <stdio.h>

//递归方式实现n的阶层计算
int cal(int a)
{
    if(a>1)
    {
        a--;
        return a*cal(a);
    }
}

int main()
{
    int a = 0;
    scanf("%d", &a);
    int ret = cal(a);
    printf("%d\n", ret);
    return 0;
}


//计算n的阶层的和
//1！+2！+3！+...+n！
//非递归方式实现
// int main(){
//     int i = 1;
//     int n = 0;
//     int ret = 1;
//     int sum = 0;
//     /*for(n=1;n<=3;n++)
//     {
//         ret=1;
//         for (i=1; i <= n;i++)
//         {
//             ret = ret * i;
//         }
//         sum = sum + ret;
//     }*/  //基本
//     //优化
//     for(n=1;n<=3;n++)
//     {
//         ret = ret*n;
//         sum = sum+ret;
//     }
//     printf("%d",sum);
//     return 0;
// }